Some software development platforms, such as the Eclipse Platform, are designed for building integrated development environments (IDEs) that can be used to create applications as diverse as web sites, embedded Java™ programs, C++ programs, and Enterprise JavaBeans™. Although the Eclipse Platform typically have built-in functionality, most of that functionality is very generic. It takes additional tools to extend the Platform for handling new content types, new functionality for existing content types, and to focus the generic functionality on specific tasks.
The Eclipse Platform is built on a mechanism for discovering, integrating, and running modules called plug-ins. For example, a tool provider can write a tool as a separate plug-in that operates on files in the workspace and surfaces its tool-specific user interface (UI) in the workbench. When the Platform is launched, a developer (also referred to as author) is presented with an IDE composed of the set of available plug-ins.
More and more heterogeneous devices access application servers running applications developed by using an IDE. Current IDEs support the development of user interfaces for applications that were originally foreseen to interact with homogenous delivery context (e.g., a screen of low resolution, such as 800×600 pixels). Developers have to adapt application user interfaces for different types of delivery context. This task becomes increasingly difficult with the prior art IDEs having a lack of specific support for device independent development of user interface documents.
Some web-development tools, such as DreamWeaver from Macromedia Inc., provide tools for XML validation, browser pre-visualisation and code completion. However, there is a lack of support for transforming device independent representations into various target languages, such as WML or VoiceXML. Further, where device independent development is enabled it lacks support for visualization of the results.